export default {
  // 指令的定义
  bind: function(el) {
    const odiv = el; // 获取当前元素
    // 拖拽时间标识
    let firstTime = '';
    let lastTime = '';
    el.onmousedown = (e) => {
      // 为了区分点击还是拖拽，使用时间差来判断，200毫秒内为点击，200毫秒外为拖拽，初始化为点击
      el.setAttribute('drag-flag', false);
      firstTime = new Date().getTime();
      // 算出鼠标相对元素的位置
      // const disX = e.clientX - odiv.offsetLeft;
      const disY = e.clientY - odiv.offsetTop;
      // let left = '';
      let top = '';
      document.onmousemove = (e) => {
        e.preventDefault();
        // 用鼠标的位置减去鼠标相对元素的位置，得到元素的位置
        // left = e.clientX - disX;
        top = e.clientY - disY;
        // 绑定元素位置到positionX和positionY上面
        // 移动当前元素
        // odiv.style.left = left + 'px';
        odiv.style.top = top + 'px';
        // 判断下当前时间与初始时间差，大于200毫秒则判断状态为拖拽
        lastTime = new Date().getTime();
        if (lastTime - firstTime > 200) {
          el.setAttribute('drag-flag', true);
        }
      };
      document.onmouseup = (e) => {
        e.preventDefault();
        document.onmousemove = null;
        document.onmouseup = null;
      };
    };
  },
};
